#ifndef __EXCEPTION_H__
#define __EXCEPTION_H__

#include <asm/type.h>
#include <intr/idt.h>


extern void do_divide_error_isr(intr_arg_t *arg);
extern void do_debug_isr(intr_arg_t *arg);
extern void do_nmi_isr(intr_arg_t *arg);
extern void do_int3_isr(intr_arg_t *arg);
extern void do_into_isr(intr_arg_t *arg);
extern void do_bound_isr(intr_arg_t *arg);
extern void do_ud2_isr(intr_arg_t *arg);
extern void do_fwait_isr(intr_arg_t *arg);
extern void do_double_fault_isr(intr_arg_t *arg);
extern void do_coprocessor_segment_cross_isr(intr_arg_t *arg);
extern void do_invalid_tss_isr(intr_arg_t *arg);
extern void do_segment_not_exist_isr(intr_arg_t *arg);
extern void do_stack_segment_fault_isr(intr_arg_t *arg);
extern void do_general_isr(intr_arg_t *arg);
extern void do_page_fault_isr(intr_arg_t *arg);
extern void do_fpe_isr(intr_arg_t *arg);
extern void do_align_check_isr(intr_arg_t *arg);
extern void do_machine_check_isr(intr_arg_t *arg);
extern void do_simd_fpe_isr(intr_arg_t *arg);
extern void do_virtual_isr(intr_arg_t *arg);
extern void do_control_protection_exception_isr(intr_arg_t *arg);
extern void do_hypervisor_injection_excetion_isr(intr_arg_t *arg);
extern void do_vmm_communication_exception_isr(intr_arg_t *arg);
extern void do_security_exception_isr(intr_arg_t *arg);
extern void do_unkonw_intr_isr(intr_arg_t *arg);

extern void init_exception();

#endif //__EXCEPTION_H__